package com.ruyuan.seckilling.common.message;

import com.alibaba.fastjson.JSON;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;
import java.util.Map;

/**
 * @author zhonghuashishan
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PageRenderMessage {

    // 页面渲染服务会根据它找到使用哪个页面配置
    private String pageCode;

    // 页面渲染服务会把这些信息会在渲染结果消息中原样返回给业务方
    // 业务方发送消息时可以携带一些信息，然后接收到结果消息的时候根据自己指定的信息来做解析
    private Map bizData;

    // 页面渲染服务会把这个值直接取出来然后作为数据聚合接口时的参数
    private Map params;

    // 文件名，需要业务方自己指定渲染好的页面叫什么名字，可以用：业务方的标识+业务id.html
    // 比如秒杀的活动页面可以是：seckilling_activity_100.html
    // 比如秒杀的商品页面可以是：seckilling_product_100.html
    private String fileName;

    public String toJsonString() {
        return JSON.toJSONString(this);
    }
}
